# 目的:摆放家具
# 家具
# 类名 Houseltem
# 属性 名字 name  占地面积  area
# 方法 无
# 有对某个家具的描述可以打印出来(用到自定义打印)
# 房子
# 类名 House
# 属性 户型type 总面积total_area 剩余面积free_area 家具列表 item_list
# 方法 添加家具 add_item
# 先有家具,家具可以不放在房子里也可以使用
class Houseltem(object):
    def __init__(self,name,area):
        self.name = name
        self.area = area
        # 没有方法,就不写了,直接输出
    def __str__(self):
        return f"{self.name}占地面积为{self.area}"
# 创建对象
bed = Houseltem('席梦思',4)
chest = Houseltem('衣柜',2)
table = Houseltem('餐桌',1.5)
# print(bed)
# print(chest)
# print(table)

class House(object):
    def __init__(self,house_type,total_area):
        self.house_type = type
        self.total_area = total_area
        self.free_area = []
        self.free_area = total_area
        self.item_list = []
    def add_item(self,item):
        # 调用方法
        if self.free_area < item.area:
            print('家具面积过大,无法添加')
        else:
            # 这里需要获取家具的属性(面积)
            self.free_area -= item.area
            self.item_list.append(item.name)
    # 自定义属性
    def __str__(self):
      # 打印房子
        return f'户型:{self.house_type},总面积:{self.total_area},剩余面积:{self.free_area},家具列表:{self.item_list}'
    # 创建对象
h1 = House("大别墅",200)
h1.add_item(bed)
h1.add_item(chest)
print(h1)


